#include <libavutil/log.h>
#include <yuv.h>
#include <avformat.h>
#include <image_capture.h>
#include <audio.h>
#include <stdio.h>
#include <rtsp2rtmp.h>
static void init(){
    // 设置控制台输出级别
    av_log_set_level(AV_LOG_INFO);
}
/**
 * 日志
 */
static void logTest(){
    // 设置控制台输出级别
    av_log_set_level(AV_LOG_DEBUG);

    // 打印输出字符串Hello World ！
    av_log(NULL, AV_LOG_DEBUG, "%s", "[DEBUG]Hello World !\n");
    av_log(NULL, AV_LOG_INFO, "%s", "[INFO]Hello World !\n");
    av_log(NULL, AV_LOG_WARNING, "%s", "[WARNING]Hello World !\n");
    av_log(NULL, AV_LOG_ERROR, "%s", "[ERROR]Hello World !\n");
}

/**
 * yuv测试
 */
static void yuv(){
    yuv420("C:\\Users\\mdjro\\Desktop\\akiyo_cif.yuv", 352, 288);
}
/**
 * 解码
 */
static void avformat(){
    formatDemo("C:\\Users\\mdjro\\Desktop\\12.mp4", LOCAL);

    //formatDemo("http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8", NET);
}

/**
 * 图像采集
 */
static void imageCaptureDemo(){
    imageCapture();
}

static void testPcmToAAC(){
    pcmToAAC("D:\\CLionProjects\\ffmpeg\\resources\\audio\\test.pcm",
             "D:\\CLionProjects\\ffmpeg\\resources\\audio\\test.aac");
}

static void testPcmToWav(){
    pcmToWAV("D:\\CLionProjects\\ffmpeg\\resources\\audio\\test.pcm",
                 2, 44100,
             "D:\\CLionProjects\\ffmpeg\\resources\\audio\\audio.wav");
}
static void testPcmToMp3(){
    pcmToMP3("D:\\CProjects\\ffmpeg\\resources\\audio\\test.pcm",
             "D:\\CProjects\\ffmpeg\\resources\\audio\\audio.mp3");
}

static void testRtsp2rtmp(){
    rtsp2rtmp();
}

int main() {
    
    init();
    //yuv();
    //avformat();
    //imageCaptureDemo();
    //testPcmToAAC();
    //testPcmToWav();
    //testPcmToMp3();
    testRtsp2rtmp();
    return 0;
}
